/*
 * @Author: 詹真琦(legendryztachi@gmail.com)
 * @Date: 2022-04-01 11:16:11
 * @LastEditors: 詹真琦(legendryztachi@gmail.com)
 * @LastEditTime: 2022-05-12 17:42:35
 * @FilePath: \code\cwp-front\pc-collaboration\src\store\modules\summary\node-permission\helper.js
 * @Description: 节点权限的一些操作
 */
/* 
转督办按钮应该废弃了。拼装他的url跳过去也是报错

*/
//you暂存待办就有存为草稿
// export const saveDraftButton = {
//     label: '存为草稿',
//     handle: 'saveDraft',
// };

//模拟特殊的提交按钮
// const systemAudit = [
//     {
//         label: '新闻通过并发布',
//         handle: 'systemAudit',
//         submitAction: 'newsAuditPass',
//     },
//     {
//         label: '新闻不通过',
//         handle: 'systemAudit',
//         submitAction: 'newsAuditNo',
//     },
//     {
//         label: '公告通过并发布',
//         handle: 'systemAudit',
//         submitAction: 'bulletionAuditPass',
//     },
//     {
//         label: '公告不通过',
//         handle: 'systemAudit',
//         submitAction: 'bulletionAuditNo',
//     },
//     {
//         label: '核定通过',
//         handle: 'systemAudit',
//         submitAction: 'vouchPass',
//     },
//     {
//         label: '核定不通过',
//         handle: 'systemAudit',
//         submitAction: 'vouchNo',
//     },
//     {
//         label: '表单审批通过',
//         handle: 'systemAudit',
//         submitAction: 'formAuditPass',
//     },
//     {
//         label: '表单审批不通过',
//         handle: 'systemAudit',
//         submitAction: 'formAuditNo',
//     },
// ];

/**
 * @description: 传入字符串，将首字母改成小写
 * @param {String}text 传入的字符串
 * @return {String}转换后的字符串
 */

export const firstLowercase = (text) => text?.replace(/^./, (v) => v.toLowerCase());

/**
 * @description: 修复一下老的code，使之更合理、正确
 * @param {String}老的code
 * @return {String}修复后的
 */
export function codeFixed(code) {
    switch (code) {
        //知会
        case 'Infom':
            return 'inform';
        //提交。
        case 'Continue':
            return 'continueSubmit';
        default:
            //其他的第一个字母转小写
            return firstLowercase(code);
    }
}
/**
 * @description: 传入按钮列表，把handle和submitAction、
 * returnDetailData、disagreeAction里面的大驼峰改成小驼峰
 * @param {Array}buttonList 按钮数据数组
 * @return {Array}改成小驼峰之后的按钮列表
 */
//操作、封装提交、回退方式、封装流程
const TRANSFORM_KEY_LIST = ['handle', 'submitAction', 'returnDetailData', 'flowAction'];
export function transformCamelback(buttonList) {
    if (!buttonList.length) return [];
    buttonList.forEach((d) => {
        TRANSFORM_KEY_LIST.forEach((key) => {
            //存在才设置
            if (d[key]) {
                d[`${key}Original`] = d[key];
                d[key] = codeFixed(d[key]);
            }
        });
    });
    return buttonList;
}

/**
 * @description: 传入基础按钮，返回正确顺序的按钮
 * @param {Array}basicButtonList 接口返回的基础按钮列表
 * @return {Array}重新排序过后的列表[[],[]]
 */
export function getBasicButtonList(basicButtonList) {
    //基础按钮顺序调整,有提交就把提交提到第一个:提交-存为草稿-暂存待办-同意-不同意
    //声明顺序需要调上来的按钮的列表。再细化就是提交、不通过等。
    const fixedList = [];
    //提交类按钮。为存为草稿、暂存待办预留位置
    const submitButton = ['', ''];
    //声明普通按钮列表
    const normalList = [];
    //暂时加入调试 systemAudit-----.concat(transformCamelback(systemAudit))
    basicButtonList.forEach((d) => {
        switch (d.handle) {
            //提交
            case 'continueSubmit':
                d.btnType = 'primary';
                //有新闻、公告、审批核定等就不要提交
                if (!fixedList[0]){
                    fixedList[0] = d;   
                }
                break;
            //存为草稿
            case 'saveDraft':
                submitButton[0] = d;
                break;
            //暂存待办
            case 'comment':
                submitButton[1] = d;
                break;
            //同意、不同意等
            case 'custom':
                if (d.submitAction === 'continueSubmit') {
                    d.btnType = 'primary';
                }
                submitButton.push(d);
                break;
            //systemAudit类型
            case 'systemAudit':
                switch (d.submitAction) {
                    //通过类
                    case 'formAuditPass':
                    case 'vouchPass':
                    case 'bulletionAuditPass':
                    case 'newsAuditPass':
                        d.btnType = 'primary';
                        fixedList[0] = d;
                        break;
                    default:
                        fixedList[1] = d;
                }
                break;
            default:
                if (d.submitAction) {
                    //提交类按钮
                    submitButton.push(d);
                } else {
                    //一般按钮
                    normalList.push(d);
                }
        }
    });
    return [fixedList.concat(submitButton.filter((d) => !!d)), normalList];
}

//暂时写死一下
// export const summaryBtnList = [
//     {
//         // label:'回退',
//         label: '回退',
//         image: 'syIcon sy-toback',
//         handle: 'Return',
//         color: 'red',
//         returnDetailData: 'Return',
//         loading: false,
//     },
//     {
//         label: '退回重填',
//         image: 'syIcon sy-toback',
//         handle: 'custom',
//         color: 'red',
//         submitAction: 'Return',
//         returnDetailData: 'SpecifiesReturnCreate|3',
//         loading: false,
//     },
//     {
//         // 自定义按钮,
//         label: '回退发起人重走',
//         image: 'syIcon sy-toback',
//         handle: 'custom',
//         color: 'red',
//         submitAction: 'Return',
//         returnDetailData: 'SpecifiesReturnCreate|1',
//         loading: false,
//     },
//     {
//         // 自定义按钮,
//         label: '回退发起人给我',
//         image: 'syIcon sy-toback',
//         handle: 'custom',
//         color: 'red',
//         submitAction: 'Return',
//         returnDetailData: 'SpecifiesReturnCreate|2',
//         loading: false,
//     },
//     {
//         // 自定义按钮,
//         label: '指定回退重走',
//         image: 'syIcon sy-toback',
//         handle: 'custom',
//         color: 'red',
//         submitAction: 'Return',
//         returnDetailData: 'SpecifiesReturn|1',
//         loading: false,
//     },
//     {
//         // label:'指定回退',
//         label: '指定回退',
//         image: 'syIcon sy-toback',
//         handle: 'SpecifiesReturn',
//         color: 'red',
//         loading: false,
//     },
//     {
//         // 自定义按钮,
//         label: '指定回退自选',
//         image: 'syIcon sy-toback',
//         handle: 'custom',
//         color: 'red',
//         submitAction: 'Return',
//         returnDetailData: 'SpecifiesReturn|3',
//         loading: false,
//     },
//     {
//         // 自定义按钮,
//         label: '指定回退给我',
//         image: 'syIcon sy-toback',
//         handle: 'custom',
//         color: 'red',
//         submitAction: 'Return',
//         returnDetailData: 'SpecifiesReturn|2',
//         loading: false,
//     },
//     {
//         // label:'终止',
//         label: $.i18n('govdoc.Termination'),
//         image: 'syIcon sy-termination',
//         handle: 'Terminate',
//         loading: false,
//     },
//     {
//         // label:'转发',
//         label: $.i18n('govdoc.resource.manage.forward'),
//         image: 'syIcon sy-forwarding',
//         handle: 'Forward',
//         loading: false,
//     },
//     {
//         // label:'撤销',
//         label: $.i18n('govdoc.resource.resourceConfig.nodeStatus.revoke2'),
//         image: 'syIcon sy-revoke',
//         handle: 'cancel',
//         loading: false,
//     },
//     {
//         // label:'移交',
//         label: $.i18n('collaboration.dealAttitude.transfer'),
//         image: 'syIcon sy-transfer',
//         handle: 'transfer',
//         loading: false,
//     },
//     {
//         // label:'同意',
//         label: $.i18n('govdoc.agree'),
//         image: 'syIcon sy-modify_attachment',
//         handle: 'agree',
//         loading: false,
//     },

//     {
//         // label:'会签给领导',会签code 1005
//         label: $.i18n('permission.operation.system.add.my.leader'),
//         image: 'syIcon sy-current_countersigned',
//         handle: 'signLeader',
//         loading: false,
//     },
//     {
//         // 自定义按钮
//         label: '跳到百度',
//         image: 'syIcon sy-current_countersigned',
//         clickUrl: '//baidu.com',
//     },
//     {
//         // 分割线
//         type: 'line',
//     },
//     {
//         // 文本框
//         label: '据海外网报道，1月21日，美国宾夕法尼亚州一辆运送百只猴子前往实验室的卡车发生交通事故，导致4只猴子逃跑。据称，当地女子米歇尔·法伦在接触到逃跑的猴子后，出现健康问题，症状与感染新冠类似。这引发了人们对病毒暴发的担忧。',
//         type: 'text',
//     },
//     {
//         // 分割线
//         type: 'line',
//     },

//     {
//         // 自定义按钮
//         label: '跳到Yapi',
//         type: 'click',
//         clickUrl: 'https://yapi.seeyoncloud.com',
//     },
//     {
//         // label:'签字提交',提交code 7782614720026002081
//         label: '签字提交',
//         handle: 'submit',
//         loading: false,
//     },
//     {
//         label: '转事件',
//         image: 'syIcon sy-forward_event',
//         handle: 'transform',
//         loading: false,
//     },
//     {
//         // label:'加签'
//         label: $.i18n('govdoc.plus.sign'),
//         image: 'syIcon sy-transfer',
//         handle: 'addNode',
//         loading: false,
//     },
//     {
//         // label:'当前会签'
//         label: '当前会签',
//         image: 'syIcon sy-transfer',
//         handle: 'jointSign',
//         loading: false,
//     },
//     {
//         // label:'多级会签'
//         label: '多级会签',
//         image: 'syIcon sy-transfer',
//         handle: 'moreSign',
//         loading: false,
//     },
//     {
//         label: '知会',
//         image: 'syIcon sy-notification',
//         handle: 'inform',
//     },
//     {
//         // label:'减签'
//         label: $.i18n('govdoc.Reduction'),
//         image: 'syIcon sy-transfer',
//         handle: 'removeNode',
//         loading: false,
//     },
//     {
//         // label:'督办设置'
//         label: '督办设置',
//         image: 'syIcon sy-setting',
//         handle: 'supervise',
//     },
//     {
//         label: '修改附件',
//         image: 'syIcon sy-setting',
//         handle: 'updateAttachment',
//     },
//     {
//         //加我的下级部门主管
//         id: '1005',
//         label: '加我的下级部门主管',
//         handle: 'custom',
//         attitude: '',
//         flowAction: 'addNode',
//         submitAction: '',
//     },
//     {
//         //会签给领导
//         id: '1004',
//         label: '会签给领导',
//         handle: 'custom',
//         attitude: '',
//         flowAction: 'jointSign',
//         submitAction: '',
//     },
//     {
//         //自定义按钮
//         id: '-2790368141232681710',
//         label: '加签给aa,bb',
//         handle: 'custom',
//         attitude: 'agree',
//         flowAction: 'addNode',
//         submitAction: '',
//     },
//     {
//         //自定义按钮
//         id: '-7521463151276965258',
//         label: '当前会签aa',
//         handle: 'custom',
//         attitude: 'agree',
//         flowAction: 'jointSign',
//         submitAction: '',
//     },
//     {
//         //自定义按钮
//         id: '2206143579741438240',
//         label: '多级会签aa,bb,cc',
//         handle: 'custom',
//         attitude: 'agree',
//         flowAction: 'moreSign',
//         submitAction: '',
//     },
//     {
//         //自定义按钮
//         id: '9070332738325399689',
//         label: '知会cm1,cm',
//         handle: 'custom',
//         attitude: 'agree',
//         flowAction: 'inform',
//         submitAction: '',
//     },
// ];

// //模拟基本按钮
// export const basicButtonList = [
//     {
//         label: '暂存待办',
//         handle: 'Comment',
//         opinionPolicy: true,
//         type: 'submit',
//     },
//     {
//         label: '通过并发布',
//         handle: 'publish',
//         type: 'submit',
//     },
//     {
//         label: '不通过',
//         handle: 'noPass',
//         type: 'submit',
//     },
//     {
//         label: '不同意',
//         handle: 'custom',
//         attitude: 'disagree',
//         submitAction: 'ContinueSubmit',
//         type: 'submit',
//         disagreeAction: [
//             { code: 'Continue', subject: '继续', isDefault: false },
//             { code: 'Terminate', subject: '终止', isDefault: false },
//             { code: 'Return', subject: '回退', isDefault: false },
//             { code: 'Cancel', subject: '撤销', isDefault: true },
//             { code: 'SpecifiesReturn', subject: '指定回退', isDefault: false },
//         ],
//     },
//     {
//         // 分割线
//         type: 'line',
//     },

//     {
//         // 自定义按钮
//         label: '跳到Yapi',
//         type: 'click',
//         clickUrl: 'https://yapi.seeyoncloud.com',
//     },
//     {
//         // 文本框
//         label: '据海外网报道，1月21日，美国宾夕法尼亚州一辆运送百只猴子前往实验室的卡车发生交通事故，导致4只猴子逃跑。据称，当地女子米歇尔·法伦在接触到逃跑的猴子后，出现健康问题，症状与感染新冠类似。这引发了人们对病毒暴发的担忧。',
//         type: 'text',
//     },
//     {
//         label: '同意',
//         handle: 'custom',
//         attitude: 'agree',
//         submitAction: 'ContinueSubmit',
//         type: 'submit',
//     },
//     {
//         label: '提交',
//         handle: 'ContinueSubmit',
//         disagreeAction: [
//             { code: 'Continue', subject: '继续', isDefault: false },
//             { code: 'Terminate', subject: '终止', isDefault: true },
//             // { code: 'Return', subject: '回退', isDefault: false },
//             // { code: 'Cancel', subject: '撤销', isDefault: true },
//             // { code: 'SpecifiesReturn', subject: '指定回退', isDefault: false },
//         ],
//         type: 'submit',
//     },
// ];
